Accessibility and assistive technology is an area that is rapidly gathering momentum for users and in governments worldwide. In the United States, the American's with Disabilities Act (ADA) Section 508 and similar legislation in the European Union provide that government procurement officers choose the most accessible software when selecting from multiple options. Recent studies indicate that over 57% of computer users have some kind of impairment and vision impairments make up a significant chunk of that percentage. With the large aging baby boomer population, easy access to technology, and people remaining in the workforce longer and longer, low vision is becoming a growing problem. Providing a way for users to see things on the screen bigger and better is just one step towards addressing this issue.
Screen magnifiers are a type of assistive technology used by visually impaired people with some functional vision. By magnifying areas of the screen, the screen magnifier allows people that would otherwise not be able to see areas of the screen that are too small to enlarge these areas. Screen magnifiers are software applications that present a computer's graphical output in an enlarged form. Many screen magnifiers act similar to a physical magnifying glass that a user can move around over the screen to magnify a specific area, except rather than a physical object the screen magnifier is software and the user moves the displayed glass or lens with the mouse or other input device. The most common method of magnification is to present an enlarged view of a portion of the original screen content that covers a portion of or the entire screen. The enlarged view often tracks the pointer or cursor as the user moves a mouse or other input device around the screen so that the user can magnify different areas. Screen magnifiers may work with a single application or across multiple applications at the operating system level. For example, Microsoft Windows Vista includes a magnifier application for magnifying the entire desktop and any applications displayed on it.
Because the view is enlarged, screen magnifiers provide a way to move the lens, or magnified area, to different areas of the desktop or application. For example, at a magnification factor of 4 times (4×), only one-eighth of the desktop can be shown in a full screen magnifier at a time. Thus, to see the other three-fourths of the desktop a user moves the magnified area around in a process called panning. Although panning often refers only to horizontal movement (and scrolling or other terms refer to vertical movement), panning as used herein refers to movement of the magnified viewport in any direction, whether horizontally, vertically, or diagonally. There are several major existing methods of panning. In the first method, the magnified view is locked to the cursor. As the mouse or other input device moves, the cursor appears to stay centered in the magnified view and the magnified view moves to show different areas of the desktop or applications. In the second method, sometimes called static panning, the cursor moves within the magnified view, but when the cursor hits an edge of the view it “bumps” the view and moves it over a little in the direction the cursor was moving. In a third method, the cursor stays in the same relative position in the magnified view and moves in a scaled fashion as the user moves the input device. For example, as the user moves the magnified view to the upper-left of the screen, the cursor appears in the upper-left of the magnified view. The cursor moves slower within the magnified view than its actual movement over the screen (i.e., scaling) so that the cursor will reach the edge of the magnified view at the same time as the magnified view reaches the edge of the screen. Likewise, the cursor will reach the center of the screen at the same time as the magnified view is centered over the screen.
Implementations that follow the cursor continuously make it difficult for users to pay attention to the task at hand because the view is always shifting, often creating a feeling of motion sickness. For example, as the user moves the input device left, the view moves right. If the user is trying to perform a task, such as drawing a circle, this can become very disconcerting. Static panning implementations create a bad user experience because the cursor is stuck at the boundary of the panning region until the user pans all the way to an edge. Static panning implementations also generally require the user to repeatedly bump in the direction the user wants to go with no ability to control the speed of panning, and do not generally allow diagonal panning. The side of the magnified view that the user bumps (e.g., left, right, top, or bottom) determines the direction that the view pans. If the user wants to go diagonally to the upper-right, the user may have to repeatedly bump the mouse into different sides of the magnified view, creating a slow process of navigation and adding to the user's frustration.